package com.递归;

/**
 * ①一个人赶着鸭子去每个村庄卖，每经过一个村子卖去所赶鸭子的一半又一只。这样他经过了七个村子后还剩两只鸭子，问他出发时共赶多少只鸭子？经过每个村子卖出多少只鸭子？
 *
 * 由题目可得知当经过第八个村庄时鸭子数量为2，所以利用已知条件由后向前递归计算可较为简便计算出出发时的总数，即第一个村庄的数量。由题意可轻松计算每个村庄卖出的数量。
 * ————————————————
 * 版权声明：本文为CSDN博主「却水」的原创文章，遵循 CC 4.0 BY-SA 版权协议，转载请附上原文出处链接及本声明。
 * 原文链接：https://blog.csdn.net/qq_41753944/article/details/90718515
 */
public class 卖鸭子 {
    static class Sulution{
        int village =  8;
        public void sellDuck(int duck){
           int sell = (duck+1)*2;
            if(village == 1){
                System.out.println(String.format("大爷出发时有%s只鸭子",duck));
                return;
            }

            village --;
            sellDuck(sell);

            System.out.println(String.format("经过第%s个村子时，卖了%s只鸭子，还剩%s只",village,sell-duck,village+sell-duck));
            village++;
        }
    }

    public static void main(String[] args) {
        new Sulution().sellDuck(2);
    }
}
